// 泛型
// 可以使用泛型来创建可重用的组件，一个组件可以支持多种类型的数据。
//  这样用户就可以以自己的数据类型来使用组件。
function listCom(arg) {
    return arg;
}
console.log(listCom(88));

function big(arg) {
    arg = arg.toString();
    return arg;
}
console.log(big(99));
// 类型 number boolean string any tuple enum 等
// 泛型的类型变量 <T> 
function identity(arg) {
    return arg;
}
console.log(identity("哈哈"));
// T 
function logs(arg) {
    console.log(arg.length); // Error: T doesn't have .length
    return arg;
}

function loggingIdentity(arg) {
    console.log(arg.length); // Array has a .length, so no more error
    return arg;
}
console.log(loggingIdentity([1, 2, 3]));